package javase2.day08.demo2;

import java.io.File;
import java.io.FilenameFilter;

/*
File过滤器的使用：
    递归打印多级目录：搜索指定文件名结尾的文件
    使用匿名内部类
 */
public class Demo07 {
    public static void main(String[] args) {
        File file = new File("D:\\qq文件\\Python程序设计-实验报告(12.13)");
        getAllFile(file);
    }

    public static void getAllFile(File f){
//        File[] files = f.listFiles(new FilenameFilter() {
//            @Override
//            public boolean accept(File dir, String name) {
//                //匿名内部类FilenameFilter实现此接口  由于此接口只有一个抽象方法所以也可以使用Lambda表达式 FileFilter同理
//                return new File(dir,name).isDirectory()||name.toLowerCase().endsWith("js");
//            }
//        });

        //由于此接口只有一个抽象方法所以也可以使用Lambda表达式      FileFilter同理
        File[] files = f.listFiles((dir, name)-> new File(dir,name).isDirectory()||name.toLowerCase().endsWith("js"));

        for(File file :files){
            if (file.isDirectory()){
                //递归
                getAllFile(file);
            }else {
                System.out.println(file);
            }
        }
    }

}
